The present invention relates, in general, to the field of systems and methods for reconfigurable, or adaptive, data processing. More particularly, the present invention relates to an extremely compact reconfigurable processor module comprising hybrid stacked integrated circuit (“IC”) die elements.
In addition to current commodity IC microprocessors, another type of processing element is commonly referred to as a reconfigurable, or adaptive, processor. These reconfigurable processors exhibit a number of advantages over commodity microprocessors in many applications. Rather than using the conventional “load/store” paradigm to execute an application using a set of limited functional resources as a microprocessor does, the reconfigurable processor actually creates the number of functional units it needs for each application in hardware. This results in greater parallelism and, thus, higher throughput for many applications. Conventionally, the ability for a reconfigurable processor to alter its hardware compliment is typically accomplished through the use of some form of field programmable gate array (“FPGA”) such as those produced by Altera Corporation, Xilinx, Inc., Lucent Technologies, Inc. and others.
In practice however, the application space over which such reconfigurable processors, (as well as hybrids combining both microprocessors and FPGAs) can be practically employed is limited by several factors.
Firstly, since FPGAs are less dense than microprocessors in terms of gate count, those packaged FPGAs having sufficient gates and pins to be employed as a general purpose reconfigurable processor (“GPRP”), are of necessity very large devices. This size factor alone may essentially prohibit their use in many portable applications.
Secondly, the time required to actually reconfigure the chips is on the order of many hundreds of milliseconds, and when used in conjunction with current microprocessor technologies, this amounts to a requirement of millions of processor clock cycles in order to complete the reconfiguration. As such, a high percentage of the GPRP's time is spent loading its configuration, which means the task it is performing must be relatively long-lived to maximize the time that it spends computing. This again limits its usefulness to applications that require the job not be context-switched. Context-switching is a process wherein the operating system will temporarily terminate a job that is currently running in order to process a job of higher priority. For the GPRP this would mean it would have to again reconfigure itself thereby wasting even more time.
Thirdly, since microprocessors derive much of their effective operational speed by operating on data in their cache, transferring a portion of a particular job to an attached GPRP would require moving data from the cache over the microprocessor's front side bus to the FPGA. Since this bus runs at about 25% of the cache bus speed, significant time is then consumed in moving data. This again effectively limits the reconfigurable processor to applications that have their data stored elsewhere in the system.
These three known limiting factors will only become increasingly significant as microprocessor speeds continue to increase. As a result, the throughput benefits that reconfigurable computing can offer to a hybrid system made up of existing, discrete microprocessors and FPGAs may be obviated or otherwise limited in its potential usefulness.